/**
  ******************************************************************************
  * @文件     fonts.h
  * @作者     hero_cao
  * @版本     V1.0.0
  * @日期     2025/06/20
  * @概要     fonts
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __FONTS_H_
#define __FONTS_H_

/* Includes ------------------------------------------------------------------*/
#include <stdint.h>
#include <cmsis_armcc.h>


/* Exported types ------------------------------------------------------------*/
extern uint32_t FONTINFOADDR;	/* 字体信息保存首地址占41个字节,第1个字节用于标记字库是否存在.后续每8个字节一组,分别保存起始地址和文件大小 */

typedef __PACKED_STRUCT
{
    uint8_t fontok;             /* 字库存在标志，0XAA，字库正常；其他，字库不存在 */
    uint32_t ugbkaddr;          /* unigbk的地址 */
    uint32_t ugbksize;          /* unigbk的大小 */
    uint32_t f12addr;           /* gbk12地址 */
    uint32_t gbk12size;         /* gbk12的大小 */
    uint32_t f16addr;           /* gbk16地址 */
    uint32_t gbk16size;         /* gbk16的大小 */
    uint32_t f24addr;           /* gbk24地址 */
    uint32_t gbk24size;         /* gbk24的大小 */
} _font_info;

extern _font_info ftinfo;

/* Exported constants --------------------------------------------------------*/
/* Exported macro ------------------------------------------------------------*/
/* Exported functions ------------------------------------------------------- */
uint8_t fonts_update_font(uint16_t x, uint16_t y, uint8_t size, uint8_t *src, uint16_t color);  /* 更新全部字库 */
uint8_t fonts_init(void);       /* 初始化字库 */

#endif /* __FONTS_H_ */
